<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qquickevents.cpp -->
  <title>KeyEvent QML 类型 | Qt Quick 5.12.3</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.12</a></td><td ><a href="qtquick-index.html">Qt Quick 模块</a></td><td ><a href="qtquick-qmlmodule.html">QML类型</a></td><td >KeyEvent QML 类型</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtquick-index.html">Qt 5.12.3 参考指南</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">目录</a></h3>
<ul>
<li class="level1"><a href="#properties">属性</a></li>
<li class="level1"><a href="#methods">Methods</a></li>
<li class="level1"><a href="#details">详细信息</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">KeyEvent QML 类型</h1>
<span class="subtitle"></span>
<!-- $$$KeyEvent-brief -->
<p>Provides information about a key event. <a href="#details">更多...</a></p>
<!-- @@@KeyEvent -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> 导入语句：</td><td class="memItemRight bottomAlign"> import QtQuick 2.12</td></tr></table></div><ul>
<li><a href="qml-qtquick-keyevent-members.html">所有成员的列表，包括继承成员</a></li>
</ul>
<a name="properties"></a>
<h2 id="properties">属性</h2>
<ul>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#accepted-prop">accepted</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#count-prop">count</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#isAutoRepeat-prop">isAutoRepeat</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#key-prop">key</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#modifiers-prop">modifiers</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#nativeScanCode-prop">nativeScanCode</a></b></b> : quint32</li>
<li class="fn"><b><b><a href="qml-qtquick-keyevent.html#text-prop">text</a></b></b> : string</li>
</ul>
<a name="methods"></a>
<h2 id="methods">Methods</h2>
<ul>
<li class="fn">bool <b><b><a href="qml-qtquick-keyevent.html#matches-method">matches</a></b></b>(StandardKey <i>key</i>)</li>
</ul>
<!-- $$$KeyEvent-description -->
<a name="details"></a>
<h2 id="details">详细信息</h2>
<p>For example, the following changes the Item's state property when the Enter key is pressed:</p>
<pre class="qml">

  <span class="type"><a href="qml-qtquick-item.html">Item</a></span> {
      <span class="name">focus</span>: <span class="number">true</span>
      <span class="name">Keys</span>.onPressed: { <span class="keyword">if</span> (<span class="name">event</span>.<span class="name">key</span> <span class="operator">==</span> <span class="name">Qt</span>.<span class="name">Key_Enter</span>) <span class="name">state</span> <span class="operator">=</span> <span class="string">'ShowDetails'</span>; }
  }

</pre>
<!-- @@@KeyEvent -->
<h2>属性文档</h2>
<!-- $$$accepted -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="accepted-prop">
<td class="tblQmlPropNode"><p>
<a name="accepted-prop"></a><span class="name">accepted</span> : <span class="type"><a href="../qtqml/qml-bool.html">bool</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>Setting <i>accepted</i> to true prevents the key event from being propagated to the item's parent.</p>
<p>Generally, if the item acts on the key event then it should be accepted so that ancestor items do not also respond to the same event.</p>
</div></div><!-- @@@accepted -->
<br/>
<!-- $$$count -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="count-prop">
<td class="tblQmlPropNode"><p>
<a name="count-prop"></a><span class="name">count</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the number of keys involved in this event. If <a href="qml-qtquick-keyevent.html#text-prop">KeyEvent::text</a> is not empty, this is simply the length of the string.</p>
</div></div><!-- @@@count -->
<br/>
<!-- $$$isAutoRepeat -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="isAutoRepeat-prop">
<td class="tblQmlPropNode"><p>
<a name="isAutoRepeat-prop"></a><span class="name">isAutoRepeat</span> : <span class="type"><a href="../qtqml/qml-bool.html">bool</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds whether this event comes from an auto-repeating key.</p>
</div></div><!-- @@@isAutoRepeat -->
<br/>
<!-- $$$key -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="key-prop">
<td class="tblQmlPropNode"><p>
<a name="key-prop"></a><span class="name">key</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the code of the key that was pressed or released.</p>
<p>See <a href="../qtcore/qt.html#Key-enum">Qt.Key</a> for the list of keyboard codes. These codes are independent of the underlying window system. Note that this function does not distinguish between capital and non-capital letters; use the <a href="qml-qtquick-keyevent.html#text-prop">text</a> property for this purpose.</p>
<p>A value of either 0 or <a href="../qtcore/qt.html#Key-enum">Qt.Key_Unknown</a> means that the event is not the result of a known key; for example, it may be the result of a compose sequence, a keyboard macro, or due to key event compression.</p>
</div></div><!-- @@@key -->
<br/>
<!-- $$$modifiers -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="modifiers-prop">
<td class="tblQmlPropNode"><p>
<a name="modifiers-prop"></a><span class="name">modifiers</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the keyboard modifier flags that existed immediately before the event occurred.</p>
<p>It contains a bitwise combination of:</p>
<ul>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.NoModifier</a> - No modifier key is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.ShiftModifier</a> - A Shift key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.ControlModifier</a> - A Ctrl key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.AltModifier</a> - An Alt key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.MetaModifier</a> - A Meta key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.KeypadModifier</a> - A keypad button is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.GroupSwitchModifier</a> - X11 only. A Mode_switch key on the keyboard is pressed.</li>
</ul>
<p>For example, to react to a Shift key + Enter key combination:</p>
<pre class="qml">

  <span class="type"><a href="qml-qtquick-item.html">Item</a></span> {
      <span class="name">focus</span>: <span class="number">true</span>
      <span class="name">Keys</span>.onPressed: {
          <span class="keyword">if</span> ((<span class="name">event</span>.<span class="name">key</span> <span class="operator">==</span> <span class="name">Qt</span>.<span class="name">Key_Enter</span>) <span class="operator">&amp;&amp;</span> (<span class="name">event</span>.<span class="name">modifiers</span> <span class="operator">&amp;</span> <span class="name">Qt</span>.<span class="name">ShiftModifier</span>))
              <span class="name">doSomething</span>();
      }
  }

</pre>
</div></div><!-- @@@modifiers -->
<br/>
<!-- $$$nativeScanCode -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="nativeScanCode-prop">
<td class="tblQmlPropNode"><p>
<a name="nativeScanCode-prop"></a><span class="name">nativeScanCode</span> : <span class="type">quint32</span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property contains the native scan code of the key that was pressed. It is passed through from <a href="../qtgui/qkeyevent.html">QKeyEvent</a> unchanged.</p>
<p><b>请参考 </b><a href="../qtgui/qkeyevent.html#nativeScanCode">QKeyEvent::nativeScanCode()</a>。</p>
</div></div><!-- @@@nativeScanCode -->
<br/>
<!-- $$$text -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="text-prop">
<td class="tblQmlPropNode"><p>
<a name="text-prop"></a><span class="name">text</span> : <span class="type"><a href="../qtqml/qml-string.html">string</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the Unicode text that the key generated. The text returned can be an empty string in cases where modifier keys, such as Shift, Control, Alt, and Meta, are being pressed or released. In such cases <code>key</code> will contain a valid value</p>
</div></div><!-- @@@text -->
<br/>
<h2>Method Documentation</h2>
<!-- $$$matches -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="matches-method">
<td class="tblQmlFuncNode"><p>
<a name="matches-method"></a><span class="type"><a href="../qtqml/qml-bool.html">bool</a></span> <span class="name">matches</span>(<span class="type">StandardKey</span> <i>key</i>)</p></td></tr>
</table></div>
</div><div class="qmldoc"><p>Returns <code>true</code> if the key event matches the given standard <i>key</i>; otherwise returns <code>false</code>.</p>
<pre class="qml">

  <span class="type"><a href="qml-qtquick-item.html">Item</a></span> {
      <span class="name">focus</span>: <span class="number">true</span>
      <span class="name">Keys</span>.onPressed: {
          <span class="keyword">if</span> (<span class="name">event</span>.<span class="name">matches</span>(<span class="name">StandardKey</span>.<span class="name">Undo</span>))
              <span class="name">myModel</span>.<span class="name">undo</span>();
          <span class="keyword">else</span> <span class="keyword">if</span> (<span class="name">event</span>.<span class="name">matches</span>(<span class="name">StandardKey</span>.<span class="name">Redo</span>))
              <span class="name">myModel</span>.<span class="name">redo</span>();
      }
  }

</pre>
<p>This method was introduced in  Qt 5.2.</p>
<p><b>请参考 </b><a href="../qtgui/qkeysequence.html#StandardKey-enum">QKeySequence::StandardKey</a>。</p>
</div></div><!-- @@@matches -->
<br/>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
